From defa1e9c0da70b270b63093eb2bc7c11968dab2e Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Mon, 21 Sep 2015 15:00:28 +0200 Subject: [PATCH] gesture: strengthen against destroyed windows Bail out when we receive an event with an already destroyed window, we'll hopefully get reset/cancelled afterwards on grab broken events. https://bugzilla.gnome.org/show_bug.cgi?id=755352 --- gtk/gtkgesture.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gtk/gtkgesture.c b/gtk/gtkgesture.c index cb0fbbe80b..ab4f20b5b8 100644 --- a/gtk/gtkgesture.c +++ b/gtk/gtkgesture.c @@ -400,7 +400,7 @@ _find_widget_window (GtkGesture *gesture, widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture)); - while (window) + while (window && !gdk_window_is_destroyed (window)) { gdk_window_get_user_data (window, (gpointer*) &window_widget); @@ -474,6 +474,10 @@ _update_widget_coordinates (GtkGesture *gesture, gint wx, wy, x, y; event_widget = gtk_get_event_widget (data->event); + + if (!event_widget) + return; + widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture)); event_widget_window = gtk_widget_get_window (event_widget); _get_event_coordinates (data, &event_x, &event_y); -- 2.30.2